perm filename ESIM.1[MAC,LSP] blob sn#587530 filedate 1981-05-19 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	 This file contains the Command decoder for the E command simulator
C00004 00003	(lap es:decode-char subr)
C00005 ENDMK
C⊗;
;;; This file contains the Command decoder for the E command simulator
;;; that is used in EVAL mode in E. What this does is to allow you
;;; to drop into this mode with αβE (meaning E mode). At which point
;;; control meta commands are decoded into em:ecommand lists that are
;;; sent to E. 

(declare (*expr em:raw-ecommands)
	 (special -es:control- -es:meta-))

(sstatus ttyint #o705 'es:decode)
(sstatus ttyint #o745 'es:decode)

(defun es:decode ()
       (do ((char (tyi)(tyi))
	    (cl () ()))
	   (())
	   (push (es:decode-char char) cl)
	   (cond (-es:meta-
		  (push '3 cl))
		 (-es:control-
		  (push '2 cl)))
	   (em:raw-ecommands (reverse cl))))

(lap es:decode-char subr)
(args es:decode-char (nil . 1))


	(move tt 0 a)
	(setzm 0 (special -es:control-))
	(setzm 0 (special -es:meta-))
	(movei b 't)
	(trze tt 200)		;control
	(movem b (special -es:control-))
	(trze tt 400)		;meta
	(movem b (special -es:meta-))
	(jrst 0 fix1)
	()